Python decorator execution explained